Multi-processor computing platforms with large shared memories typically employ memory allocators that require each node to manage its own memory heap, and include a thin distributed layer that manages each individual instance of heap, which impairs data sharing. Additionally, individual processors cannot release memory that has been allocated by another processor.